О принципе работы long-polling, socket...
Приветствую Вас Уважаемые профессионалы. У меня имеется парочку вопросов.
1. Заголовок keep-alive... Когда браузер отправляет запрос через ajax, то сервер (apache) не закрывает соединение на протяжении 5 секунд. Так вот, соединение на протяжении этого времени считается открытым, а почему тогда при повторной отправке браузер опять формирует заголовки и прочее? В чем разница? Дело в том, что если браузер и сервер не закрывают соединение на протяжении 5 секунд, тогда зачем заморачиваться long-polling? Какое тогда между двумя этим запросами отличие? По мимо того, что с long-polling результат придет быстрее.
2. В предыдущем вопросе я упомянул long-polling, хотя особо не представляю как он работает. Пример, у меня имеется чат и сообщения которые хранятся в БД, то-есть, браузер отправляет запрос на сервер где сам запрос в БД (для проверки новый сообщений) помещен в бесконечный цикл и если новые данные имеются после этого сервер осуществляет ответ. Я правильно полян принцип? А не ляжет ли сервер от такого "Бесконечного" количество запросов в БД, ну предположим я буду отправлять цикл в сон каждые 500 миллисекунд, но тем не менее. Как в идеале это должно работать?
3. Сокеты работают по такому же принципу (я имею ввиду проверки новых данных) как я описал во втором вопросе?
4. Сколько максимум может длиться (по времени) запрос AJAX (версия HTTP/1.1). Ну, к примеру, если на сервере установить sleep на 20 минут. Это вообще нормально столько времени не закрывать соединения? Каждый браузер ведет себя по разному? Пробовал в гугл хром 38 версия, соединения держится более 10 минут, а дольше не пробовал.
|